#include "function.h"

#include <iostream>
#include <string>
int main() {
	std::cout << Add<int>(1, 56) << std::endl;//函数模板显式推导	
	std::cout << Add(1.32, 56.905) << std::endl;//函数模板隐式推导	

	std::string a = "fdjis";
	std::string b = Implicit_Cast<std::string>("234(*$jk");
	//std::string b = Implicit_Cast<std::string, const char*>("234(*$jk");
	std::cout << Add(a, b) << std::endl;	


	std::cout << TypeToId<int>::Id << std::endl;//1
	std::cout << TypeToId<double>::id << std::endl;//2
	std::cout << TypeToId<const char*>::ID << std::endl;//3
	std::cout << TypeToId<std::string>::ID << std::endl;//-1

	int e = 10;
	int f = 20;
	double c = 10.0;
	double d = 20.0;
	TypeToId<int>().copy(&e, &f, 1);
	TypeToId<std::string>().move(a, b);
	//TypeToId<std::string>().copy(a, b);
	std::cout << e << std::endl;
	std::cout << a << std::endl;
	std::cout << b << std::endl;
	return 0;
}
